/**
 * 项目名称:
 *
 * @Author: 夏国倩
 * @Date: 2023/10/14 15:20
 * @Copyright
 */
package Reflect;

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

/*
了解，反翻译一个类的方法
 */
public class ReflectTest9 {
    public static void main(String[] args) throws Exception{
        StringBuffer s=new StringBuffer();
        Class userServiceClass = Class.forName("demo.Reflect.UserService");
        s.append(Modifier.toString(userServiceClass.getModifiers())
                +"class"+userServiceClass.getSimpleName()+"{\n");

        Method[] methods=userServiceClass.getDeclaredMethods();
        for (Method method:methods){
            //public boolean login(String name,String password){}
            s.append("\t");
            s.append(Modifier.toString((method.getModifiers())));
            s.append(" ");
            s.append(method.getReturnType().getSimpleName());
            s.append(" ");
            s.append(method.getName());
            s.append("( ");
            //参数列表
            Class[] parameterTypes = method.getParameterTypes();
            for (Class parameterType:parameterTypes){
                s.append(parameterType.getSimpleName());
                s.append(","); //(name,age,)
            }
            //删除指定下标位置上的字符
            s.deleteCharAt(s.length()-1);
            s.append("){}\n");
        }
        s.append("}");
        System.out.println(s);
    }
}
